Diziler ve Döngüler
While Döngüsü
While döngüsü, belirli bir koşul doğru olduğu sürece yani True
olduğu sürece kod bloğunu tekrar tekrar çalıştırır. Eğer koşul False
olursa veya break
komutu ile döngü sonlandırılırsa, döngüden çıkılır.
- Not : Ctrl+C veya Ctrl+Z ile sonsuz döngüden çıkabilirsiniz.
a = 1
while a == 1:
print("bilgisayar çıldırdı!") # Sonsuz döngü!
bilgisayar çıldırdı!
bilgisayar çıldırdı!
bilgisayar çıldırdı!
(ve daha fazlası...)
Yukarıdaki döngü sonsuza kadar devam eder çünkü a
'nın değeri hiç değişmez ve daima 1
kalır. Bu tip durumlar programda istenmeyen davranışlara yol açabilir.
i = 1
while i <= 5:
print(i)
i += 1
print("elma")
print("while döngüsünden çıkıldı!!")
1
elma
2
elma
3
elma
4
elma
5
elma
while döngüsünden çıkıldı!!
Yukarıdaki kod, i
değişkeni 1
’den başlayarak her seferinde 1 artırılır ve 5
olana kadar (dahil) döngü devam eder. Her adımda i
'nin değeri ve "elma" yazdırılır.
sayi = -1
while sayi <= 0:
sayi = int(input("Pozitif bir sayı girin: "))
Pozitif bir sayı girin: -2
Pozitif bir sayı girin: -3
Pozitif bir sayı girin: 1
Kullanıcı pozitif bir sayı girinceye kadar döngü devam eder.
while True:
parola = input("Bir parola belirleyin: ")
if not parola:
print("parola bölümü boş geçilemez!")
elif len(parola) > 8 or len(parola) < 3:
print("parola 8 karakterden uzun 3 karakterden kısa olmamalı")
else:
print("Yeni parolanız", parola)
break
Bir parola belirleyin: 123456789
parola 8 karakterden uzun 3 karakterden kısa olmamalı
Bir parola belirleyin: 12
parola 8 karakterden uzun 3 karakterden kısa olmamalı
Bir parola belirleyin:
parola bölümü boş geçilemez!
Bir parola belirleyin: 12345
Yeni parolanız 12345
Bu döngü, kullanıcı geçerli bir parola girene kadar devam eder.
sayi = int(input("Bir sayı girin: ")) # Örneğin 5
faktoriyel = 1
while sayi > 0:
faktoriyel *= sayi # faktoriyel = faktoriyel * sayi
sayi -= 1
print("Faktöriyel:", faktoriyel)
Bir sayı girin: 5
Faktöriyel: 120
Kullanıcının girdiği sayının faktöriyelini hesaplar.
i = 0
while i < 10:
i += 1
if i == 3:
print("Bu iterasyonu atla.")
continue # continue ile bu iterasyon atlanır ve döngü
ye devam edilir.
if i == 8:
print("Döngüyü burada sonlandır.")
break # break ile döngü sonlandırılır.
if i == 5:
print("Bu kısmı atla, ancak döngüye devam et.")
pass # pass ile hiçbir şey yapılmaz ve döngüye devam edilir.
print("Geçerli değer:", i)
print("Döngü tamamlandı.")
Geçerli değer: 1
Geçerli değer: 2
Bu iterasyonu atla.
Geçerli değer: 4
Bu kısmı atla, ancak döngüye devam et.
Geçerli değer: 5
Geçerli değer: 6
Geçerli değer: 7
Döngüyü burada sonlandır.
Döngü tamamlandı.
Bu kod, continue
, break
, ve pass
ifadelerinin kullanımını gösterir.
For Döngüsü
for
döngüsü, belirli bir aralıkta veya bir koleksiyondaki (liste, demet, sözlük vb.) her öğe için kod bloğunu yinelemek için kullanılır.
dize = "Merhaba"
for karakter in dize:
print(karakter)
M
e
r
h
a
b
a
Her karakteri yeni bir satırda yazdırır.
liste = [1, 2, 3, 4, 5]
for eleman in liste:
print(eleman)
1
2
3
4
5
Listedeki her elemanı sırayla yazdırır.
sozluk = {"anahtar1": "değer1", "anahtar2": "değer2", "anahtar3": "değer3"}
print(sozluk.items())
for key, value in sozluk.items():
print(key, value)
dict_items([('anahtar1', 'değer1'), ('anahtar2', 'değer2'), ('anahtar3', 'değer3')])
anahtar1 değer1
anahtar2 değer2
anahtar3 değer3
Sözlüğün her bir anahtar-değer çiftini sırayla yazdırır.
Not: range(ilk_sayı, son_sayı)
ile belirli bir aralıktaki sayılar üzerinde döngü kurulabilir.
for sayi in range(0, 10):
print(sayi)
0
1
2
3
4
5
6
7
8
9
0'dan 9'a kadar olan sayıları sırayla yazdırır.
for sayi in range(10):
print(sayi)
0
1
2
3
4
5
6
7
8
9
Yukarıdaki ile aynı çıktıyı verir; başlangıç değeri default olarak 0 kabul edilir.
for sayi in range(1, 11):
print(sayi)
1
2
3
4
5
6
7
8
9
10
1'den 10'a kadar olan sayıları sırayla yazdırır.
for i in range(1, 10, 2):
print(i)
1
3
5
7
9
1'den başlayarak 9'a kadar olan sayıları ikişer ikişer artırarak yazdırır.
for i in range(1, 4):
print(i)
for j in range(1, 4):
print(i, j)
1
1 1
1 2
1 3
2
2 1
2 2
2 3
3
3 1
3 2
3 3
İki iç içe for
döngüsü kullanarak, her iki aralıktaki sayıların kombinasyonlarını yazdırır.
kelimeler = ["merhaba", "dünya", "python", "programlama"]
uzunluklar = []
for kelime in kelimeler:
print(kelime)
uzunluklar.append(len(kelime))
print("Kelimelerin uzunlukları:", uzunluklar)
merhaba
dünya
python
programlama
Kelimelerin uzunlukları: [7, 5, 6, 11]
Her bir kelimenin uzunluğunu hesaplar ve bir listeye ekler.